<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css 浮动二</title>
    <style type="text/css">
        ul li{
            width: 200px;
            text-align: center;
            list-style: none;
            display: inline-block;
            background-color: #eeeeee;
        }

        #inline p{
            display: inline;
            background-color: red;
            width: 100px; /* 这里设置没有用*/
        }

        #inline-block p{
            display: inline-block;
            background-color: red;
            width: 200px;
            padding: 10px;
        }

        #block p{
            display: block;
            background-color: red;
            width:100px;
            padding:20px;
        }

        div{
            margin:20px;
            background-color: #eee;
        }

    </style>
    <script>
    /*
    总体概念
    1.0 block 和 inline 
    block： 块级元素通常视为独立的一块，会单独换一行。
    inline： inline 元素则前后不会产生换行 一些列inline 元素都在一行内显示 直到改行排满
    2.0 常见HTML 元素的都有各自的 block 和 inline 属性
    常见的块级元素有： div , form ,table, p ,pre, H1-H6 ,dl,ol,ul 等
    常见的inline 元素有： span ,a, strong, em, label, input , select ,textarea,img, br等
    3.0 block 元素可以包含 block 和 inline 元素，但 inline 元素只能包含 inline 元素
    要注意的是这个是个大概的说法，每个特定的元素能包含的元素也是特定的，所以具体到个别元素上，
    这条规律是不适用的。比如 P 元素，只能包含inline元素，而不能包含block元素。
    4.0 一般来说 可以通过 display:inline 和 display:block 的设置 来改变元素的布局级别
    细节对比：
    block ，inline 和 inline-block 细节对比

    display:block
    block元素会独占一行，多个block元素会各自新起一行。默认情况下，block元素宽度自动填满其父元素宽度。
    block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
    block元素可以设置margin和padding属性。

    display:inline
    inline元素不会独占一行，多个相邻的行内元素会排列在同一行里，直到一行排列不下，才会新换一行，
    其宽度随元素的内容而变化。
    inline元素设置width,height属性无效。
    inline元素的margin和padding属性，水平方向的padding-left, padding-right, margin-left, 
    margin-right都产生边距效果；但竖直方向的padding-top, padding-bottom, margin-top, 
    margin-bottom不会产生边距效果。
    
    display:inline-block
    简单来说就是将对象呈现为inline对象，但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。
    比如我们可以给一个link（a元素）inline-block属性值，使其既具有block的宽度高度特性又具有inline的同行特性。
    将元素显示为行内块状元素，设置该属性后，其他的行内块级元素会排列在同一行。比如我们li元素一个inline-block，使其既有block的宽度高度特性，又有inline的同行特性，
    在同一行内有不同高度内容的元素时，通常要设置对齐方式如vertical-align: top;来使元素顶部对齐。
    */
    </script>
</head>
<body>
    <ul>
        <li><a href="#">inline-block</a></li>
        <li><a href="#">inline-block</a></li>
        <p> 哈哈哈 这是一个换行的捣乱分子 </p>
        <li><a href="#">inline-block</a></li>
        <li><a href="#">inline-block</a></li>
        <li><a href="#">inline-block</a></li>
        <p> 哈哈哈</p>
    </ul>
    <div id="inline">
      display:inline 在同一行，并且宽度就等于文字内容的宽度且设置宽度无用<p>内容内容内容内容内容内容内容</p>内容内容内容内容内容内容
    </div>
    <div id="inline-block">
      display:inline-block  既有行级元素的特性，也有块级元素的特性，因此在同一行，能设置宽高，margin，padding<p>这是inline-block 中的一个 block 元素</p>内容内容内容内容内容内容
    </div>
    <div id="block">
       display:block 块级元素会自动换新行，占领一行,可以设置宽高，margin，padding <p>内容内容内容内容内容内容内容</p>内容内容内容内容内容内容
    </div>
</body>
</html>